ফাইল আপলোড এবং ডাউনলোড

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) ফাইল হ্যান্ডলিং এবং স্টোরেজ |
220
220

ASP.NET Core এ ফাইল আপলোড এবং ডাউনলোড একটি সাধারণ প্রক্রিয়া, যা ওয়েব অ্যাপ্লিকেশনগুলির মাধ্যমে ব্যবহারকারীদের ফাইল আপলোড এবং ডাউনলোড করতে সহায়ক। ফাইল আপলোড এবং ডাউনলোড পরিচালনা করতে IFormFile ইন্টারফেস ব্যবহার করা হয়। এটি ব্যবহারকারীদের ফাইল নির্বাচন ও আপলোড করার জন্য একটি সহজ এবং নিরাপদ পদ্ধতি প্রদান করে।


ফাইল আপলোড করা

ASP.NET Core-এ ফাইল আপলোড করার জন্য আপনাকে ক্লায়েন্ট সাইড (HTML) এবং সার্ভার সাইড (C#) কোড লিখতে হবে। নিচে ফাইল আপলোড করার প্রক্রিয়া দেখানো হলো।

১. HTML ফর্ম তৈরি করা

প্রথমে, একটি HTML ফর্ম তৈরি করুন যেখানে ব্যবহারকারী ফাইল আপলোড করতে পারবেন।

<form enctype="multipart/form-data" method="post" action="/FileUpload/UploadFile">
    <input type="file" name="uploadedFile" />
    <button type="submit">Upload File</button>
</form>

এখানে enctype="multipart/form-data" ব্যবহার করা হচ্ছে, যা ফাইল ডেটা সহ অন্যান্য ডেটা সার্ভারে পাঠাতে সহায়তা করে।

২. Controller কোড (C#)

ASP.NET Core-এ ফাইল আপলোড করার জন্য আপনাকে একটি Controller তৈরি করতে হবে, যেখানে ফাইল গ্রহণ এবং সেভ করার কোড থাকবে।

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Threading.Tasks;

public class FileUploadController : Controller
{
    // GET: FileUpload
    public IActionResult Index()
    {
        return View();
    }

    // POST: FileUpload/UploadFile
    [HttpPost]
    public async Task<IActionResult> UploadFile(IFormFile uploadedFile)
    {
        if (uploadedFile != null && uploadedFile.Length > 0)
        {
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", uploadedFile.FileName);

            using (var stream = new FileStream(filePath, FileMode.Create))
            {
                await uploadedFile.CopyToAsync(stream);
            }
            return RedirectToAction("Index");
        }
        return View();
    }
}

এখানে, IFormFile ব্যবহার করে ফাইলটি গ্রহণ করা হয়েছে এবং এটি wwwroot/uploads ফোল্ডারে সেভ করা হয়েছে।

  • IFormFile: ASP.NET Core-এ ফাইল আপলোডের জন্য ব্যবহৃত ক্লাস।
  • CopyToAsync: ফাইল স্ট্রিমে ফাইলটি কপি করার জন্য ব্যবহৃত অ্যাসিঙ্ক্রোনাস মেথড।

৩. ফাইল স্টোরেজের জন্য ফোল্ডার তৈরি

ফাইল আপলোড করার জন্য আপনাকে একটি ফোল্ডার তৈরি করতে হবে যেখানে ফাইলগুলো সেভ করা হবে। উদাহরণস্বরূপ, wwwroot/uploads ফোল্ডার।


ফাইল ডাউনলোড করা

ফাইল ডাউনলোড করার জন্য সার্ভারের সঠিক পাথ থেকে ফাইলটি পাঠানো হয়। নিচে ফাইল ডাউনলোড করার উদাহরণ দেখানো হলো।

১. Controller কোড (C#)

public class FileDownloadController : Controller
{
    // GET: FileDownload/DownloadFile
    public IActionResult DownloadFile(string fileName)
    {
        var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", fileName);

        if (System.IO.File.Exists(filePath))
        {
            var fileBytes = System.IO.File.ReadAllBytes(filePath);
            return File(fileBytes, "application/octet-stream", fileName);
        }

        return NotFound();
    }
}

এখানে:

  • File.ReadAllBytes: ফাইলের সকল বাইট পড়ার জন্য ব্যবহৃত হয়।
  • File: ডাউনলোডের জন্য ফাইল রিটার্ন করে। এটি ক্লায়েন্ট সাইডে ফাইল ডাউনলোড শুরু করবে।

২. ফাইল ডাউনলোডের জন্য HTML লিংক

<a href="/FileDownload/DownloadFile?fileName=example.jpg">Download File</a>

এখানে, fileName প্যারামিটারটি সার্ভারে পাঠানো হচ্ছে, যাতে নির্দিষ্ট ফাইলটি ডাউনলোড করা যায়।


নিরাপত্তা বিষয়ক দিক

ফাইল আপলোড এবং ডাউনলোড করার সময় কিছু নিরাপত্তা বিষয় নিশ্চিত করা জরুরি:

  • ফাইলের ধরনের যাচাই: শুধুমাত্র নির্দিষ্ট ফাইল টাইপ (যেমন: .jpg, .png, .txt) আপলোড করা যেতে পারে। এটি করতে, ফাইলের এক্সটেনশন চেক করা যেতে পারে।
  • ফাইলের আকার সীমাবদ্ধ করা: বড় ফাইল আপলোড থেকে রক্ষা পেতে ফাইলের আকার সীমাবদ্ধ করা যেতে পারে।
  • ফাইলের নাম স্যানিটাইজ করা: ফাইলের নাম স্যানিটাইজ করা উচিত, যাতে কোনো ধরনের ম্যালিসিয়াস কোড বা স্ক্রিপ্ট না চলে।

উদাহরণ: ফাইলের ধরন চেক করা

var allowedExtensions = new[] { ".jpg", ".png", ".txt" };
var fileExtension = Path.GetExtension(uploadedFile.FileName);

if (!allowedExtensions.Contains(fileExtension.ToLower()))
{
    return BadRequest("Invalid file type.");
}

সারাংশ

ASP.NET Core-এ ফাইল আপলোড এবং ডাউনলোড করার প্রক্রিয়া খুবই সহজ এবং নমনীয়। আপনি ফাইলটি সার্ভারে গ্রহণ এবং সেভ করতে পারবেন, এবং পরে সেই ফাইলটি ব্যবহারকারীর জন্য ডাউনলোডও করতে পারবেন। তবে, নিরাপত্তার দিক থেকেও সতর্ক থাকা প্রয়োজন, বিশেষ করে ফাইলের ধরন এবং আকারের জন্য যাচাই নিশ্চিত করতে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion